﻿/*
创建人：zhangrj
日期：2023-01-05
描述：周期性检验维护页面js
*/
var page = {
    url: getRootPath() + "/Ashx/PeriodicCheckHandler.ashx", //后台处理url,
    commonUrl: getRootPath() + "/Ashx/CommonHandler.ashx", //通用方法后台路径
    //分页参数
    pageTotal: 0, //分页总数（主列表）
    pageSize: 10, //每页条数（主列表）
    pageNumber: 1, //页码（主列表）
    pageTotal_1: 0, //分页总数（详细列表）
    pageSize_1: 10, //每页条数（详细列表）
    pageNumber_1: 1, //页码（详细列表）
    periodicCheckBaseDataID: "",
    init: function () {
        page.bind();
        page.initPage();
    },
    //绑定事件
    bind: function () {
        customizedEasyuiPagination('pp'); //定制化分页
        customizedEasyuiPagination('pp1'); //定制化分页
        //主列表加载
        $("#gdPeriodicCheckInfo").datagrid({
            onLoadSuccess: function (data) {
                $('#pp').pagination('refresh', {	// 改变选项，并刷新分页栏信息
                    total: page.pageTotal,
                    pageSize: page.pageSize,
                    pageNumber: page.pageNumber
                });
                customizedEasyuiPagination('pp'); //定制化分页
            },
            columns: [[
                 { field: 'ck', title: '选择', checkbox: true },
                 { field: 'PRODUCTFAMILYNAME', title: '型别', width: 100 },
                 { field: 'PRODUCTNAME', title: '零件号', width: 150 },
                 { field: 'SPECNO', title: '工序号', width: 80 },
                 { field: 'OPDESC', title: '工序名称', width: 150 },
                 { field: 'DETECTIONTYPE', title: '检测类型', width: 120 },
                 { field: 'EFFECTIVENAME', title: '有效类型', width: 80 },
                 { field: 'ISENABLENAME', title: '是否启用', width: 80 },
                 { field: 'STATUS', title: '状态', width: 60,
                     formatter: function (value, row, index) {
                         if (value === "有效") {
                             return "<span style='color:#1E90FF'>" + value + "</span>";
                         }
                         else if (value === "到期") {
                             return "<span style='color:#FF0000'>" + value + "</span>";
                         }
                         else {
                             return "<span style='color:#CD9B1D'>" + value + "</span>";
                         }
                     }
                 },
                 { field: 'SURPLUSQTY', title: '剩余数量', width: 80 },
                 { field: 'DUEDATE', title: '到期日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'NOTES', title: '描述', width: 160 }
                ]],
            onSelect: function (rowIndex, rowData) {
                page.periodicCheckBaseDataID = rowData.PERIODICCHECKBASEDATAID;
                page.bindDetail();
            },
            onUnselect: function (rowIndex, rowData) {
                page.periodicCheckBaseDataID = "";
                page.clearPage(false, false, true, true, true);
            },
            onSelectAll: function () {
                page.clearPage(false, false, true, true, true);
            },
            onUnselectAll: function () {
                page.clearPage(false, false, true, true, true);
            }
        });
        //详细列表加载
        $("#gdPeriodicCheckDetailInfo").datagrid({
            onLoadSuccess: function (data) {
                $('#pp1').pagination('refresh', {	// 改变选项，并刷新分页栏信息
                    total: page.pageTotal_1,
                    pageSize: page.pageSize_1,
                    pageNumber: page.pageNumber_1
                });
                customizedEasyuiPagination('pp1'); //定制化分页
            },
            columns: [[
                 { field: 'APPLYNO', title: '申请编号', width: 140 },
                 { field: 'ENTRUSTNO', title: '请托单号', width: 80 },
                 { field: 'ENTRUSTDATE', title: '请托时间', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'COMPLETEDATE', title: '完成时间', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'STATUSNAME', title: '状态', width: 80 },
                 { field: 'CREATEEMPNAME', title: '创建人', width: 80 },
                 { field: 'CREATEDATE', title: '创建日期', width: 80,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 }
                ]]
        });
        //主列表分页事件
        $('#pp').pagination({
            onSelectPage: function (pageNumber, pageSize) {
                customizedEasyuiPagination('pp'); //定制化分页
                page.clearPage(false, true, true, true, true);
                page.pageSize = pageSize; page.pageNumber = pageNumber;
                page.search();
            }
        });
        //详细列表分页事件
        $('#pp1').pagination({
            onSelectPage: function (pageNumber, pageSize) {
                customizedEasyuiPagination('pp1'); //定制化分页
                page.clearPage(false, false, true, true, true);
                page.pageSize_1 = pageSize; page.pageNumber_1 = pageNumber;
                page.bindDetail();
            }
        });
        $(document).ready(function () {
            //绑定分页go按钮
            $('#pageGo').on("click", function () {
                page.clearPage(false, true, true, true, true);
                var pageNumber = $(this).parents('tr').find('.pagination-num').val();
                page.pageNumber = pageNumber;
                page.search();
            });
            //绑定分页go1按钮
            $('#pageGo1').on("click", function () {
                page.clearPage(false, false, true, true, true);
                page.pageNumber_1 = $(this).parents('tr').find('.pagination-num').val();
                page.bindDetail();
            });
        });
        //查询信息
        $("#btnSearch").on("click", function () {
            page.clearPage(false, true, true, true, true);
            page.pageNumber = 1;
            page.search();
        });
        //重置查询
        $("#btnReset").on("click", function () {
            page.clearPage(true, true, true, true, true);
        });
        //新建
        $("#btnAdd").on("click", function () {
            page.clearPage(false, false, true, true, true);
            page.openDialog();
        });
        //删除
        $("#btnDele").on("click", function () {
            if (confirm("是否删除")) {
                page.clearPage(false, false, true, true, true);
                page.updateStatus(1);
            }
        });
        //启用/暂停
        $("#btnEnableOrStop").on("click", function () {
            page.clearPage(false, false, true, true, true);
            page.updateStatus(2);
        });
        //弹窗保存
        $("#btnSave").on("click", function () {
            page.save();
        });
        //弹窗关闭
        $("#btnClose").on("click", function () {
            $("#dg").dialog("close");
        });
        //excel导入
        $("#btnExcelImport").on("click", function () {
            page.uploadFile();
        });
        //提请委托计量
        $("#btnApply").on("click", function () {
            if (confirm("是否提请委托计量")) {
                page.addApply();
            }
        });
    },
    //初始化页面数据
    initPage: function () {
        page.post(page.url, { action: "InitPageData" }, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            //绑定查询工区下拉框
            $("#txtWorkCenterByQuery").combobox({
                valueField: 'WORKCENTERID',
                textField: 'WORKCENTERNAME',
                panelHeight: 200,
                data: res.DBTable, //下拉数据
                onSelect: function (record) {
                    $("#txtTeamByQuery").combo("clear");
                    $("#txtTeamByQuery").combo("panel").empty();
                    page.bindTeam(record.WORKCENTERID, 1); //加载班组
                }
            });
            $("#temDownload").attr("href", res.ReturnData); //下载模板链接
        });
    },
    //绑定班组(1、查询区域的班组，2、弹窗中的班组)
    bindTeam: function (workcenterId, type) {
        page.post(page.commonUrl, { action: "GetTeam", workCenterId: workcenterId }, false, function (res) {
            if (res.Result) {
                if (type === 1) {
                    //绑定查询班组
                    $("#txtTeamByQuery").combobox({
                        valueField: 'TEAMID',
                        textField: 'TEAMNAME',
                        panelHeight: 200,
                        data: res.DBTable //下拉数据
                    });
                }
                else {
                    //绑定弹窗班组
                    $("#selTeam").combobox({
                        valueField: 'TEAMID',
                        textField: 'TEAMNAME',
                        panelHeight: 200,
                        data: res.DBTable //下拉数据
                    });
                }
            }
        });
    },
    //查询
    search: function () {
        var formData = {
            action: "GetPeriodicCheckList",
            pageSize: page.pageSize,
            pageIndex: page.pageNumber,
            productName: $("#txtProductByQuery").textbox("getValue"),
            specNo: $("#txtSpecNoByQuery").textbox("getValue"),
            specDesc: $("#txtSpecDescByQuery").textbox("getValue"),
            workCenterID: $("#txtWorkCenterByQuery").combobox("getValue"),
            teamID: $("#txtTeamByQuery").combobox("getValue"),
            status: $("#selStatus").combobox("getValue")
        };
        page.post(page.url, formData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            page.pageTotal = res.RowCount;
            $("#gdPeriodicCheckInfo").datagrid('loadData', { total: res.RowCount, rows: res.DBTable });
        });
    },
    //加载详细列表
    bindDetail: function () {
        var formData = {
            action: "GetPeriodicCheckApplyList",
            periodicCheckBaseDataId: page.periodicCheckBaseDataID,
            pageSize: page.pageSize_1,
            pageIndex: page.pageNumber_1
        };
        page.post(page.url, formData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            page.pageTotal_1 = res.RowCount;
            $("#gdPeriodicCheckDetailInfo").datagrid('loadData', { total: res.RowCount, rows: res.DBTable });
        });
    },
    //打开弹窗
    openDialog: function () {
        page.post(page.commonUrl, { action: "getWorkcenterByFactory" }, true, function (res) {
            //绑定工区下拉框
            $("#selWorkCenter").combobox({
                valueField: 'WORKCENTERID',
                textField: 'WORKCENTERNAME',
                panelHeight: 200,
                data: res, //下拉数据
                onSelect: function (record) {
                    $("#selTeam").combo("clear");
                    $("#selTeam").combo("panel").empty();
                    page.bindTeam(record.WORKCENTERID, 2); //加载班组
                }
            });
            //打开弹窗
            $("#dg").dialog({
                onClose: function () { //关闭事件，恢复主页面按钮
                    $("#mainDiv").find(".easyui-linkbutton").each(function () {
                        $(this).linkbutton('enable');
                    });
                }
            });
            //禁用主页面所有按钮
            $("#mainDiv").find(".easyui-linkbutton").each(function () {
                $(this).linkbutton('disable');
            });
        });

    },
    //保存（弹窗）
    save: function () {
        var isValid = $("#ff").form('validate');
        if (!isValid) {
            displayMessage("请填写必填项", false);
            return false;
        }
        var formData = $("#ff").serializeArray();
        var datas = {};
        $.each(formData, function () {
            datas[this.name] = this.value;
        });
        page.post(page.url, { action: "CreatePeriodicCheckData", params: JSON.stringify([datas]) }, true, function (res) {
            if (res.Result) {
                $("#dg").dialog("close");
                $("#btnSearch").click();
            }
            displayMessage(res.Message, res.Result);
        });
    },
    //更新状态
    updateStatus: function (type) {
        var selected = $("#gdPeriodicCheckInfo").datagrid("getChecked");
        if (selected.length === 0) {
            displayMessage("请选择数据", false);
            return false;
        }
        var datas = {
            action: "UpdatePeriodicCheckStatus",
            paramDt: JSON.stringify(selected),
            operaType: type
        }
        page.post(page.url, datas, true, function (res) {
            if (res.Result) {
                $("#btnSearch").click();
            }
            displayMessage(res.Message, res.Result);
        });
    },
    //Excel上传
    uploadFile: function () {
        //判断是否ie浏览器
        if (window.ActiveXObject || "ActiveXObject" in window) {
            displayMessage("请用谷歌浏览器进行上传操作", false);
            return;
        }
        $("#importDem").click();
        //文件选择
        $("#importDem").on("change", function () {
            var files = $('#importDem')[0].files[0];
            if (isNullOrWhiteSpaceStr(files)) {
                return;
            }
            var formdata = new FormData();
            formdata.append('file', files);
            formdata.append('action', "UploadCheckFile");
            $.ajax({
                type: "Post",
                url: page.url,
                data: formdata,
                contentType: false,
                processData: false,
                cashe: false,
                async: false,
                dataType: "json",
                beforeSend: function () {
                    $.messager.progress({ text: '', msg: '处理中...' });
                },
                success: function (res) {
                    $.messager.progress('close');
                    if (res.Result) {
                        $("#btnSearch").click();
                    }
                    $("#importDem").val("");
                    displayMessage(res.Message, res.Result);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $.messager.progress('close');
                    displayMessage(XMLHttpRequest.responseText, false);
                }
            });
        });
    },
    //提起委托计量
    addApply: function () {
        var selected = $("#gdPeriodicCheckInfo").datagrid("getChecked");
        if (selected.length === 0) {
            displayMessage("请选择数据", false);
            return false;
        }
        var formData = {
            action: "CreatePeriodicCheckApply",
            paramDt: JSON.stringify(selected)
        }
        page.post(page.url, formData, true, function (res) {
            if (res.Result) {
                $("#btnSearch").click();
            }
            displayMessage(res.Message, res.Result);
        });
    },
    //清除页面（查询区域，列表区域，详情区域，弹窗，是否清空消息）
    clearPage: function (query, list, detaile, dialog, msg) {
        if (query) {
            $("#txtProductByQuery").textbox("setValue", ""); //零件号
            $("#txtSpecNoByQuery").textbox("setValue", ""); //工序号
            $("#txtSpecDescByQuery").textbox("setValue", ""); //工序名
            $("#selStatus").combobox("setValue", "0"); //状态
        }
        if (list) {
            clearEasyuiDataGrid("gdPeriodicCheckInfo"); //清空列表
        }
        if (detaile) {
            clearEasyuiDataGrid("gdPeriodicCheckDetailInfo"); //清空列表
            page.pageNumber_1 = 1;
        }
        if (dialog) {
            $("#txtProductName").textbox("setValue", ""); //零件号
            $("#txtSpecNo").textbox("setValue", ""); //工序号
            $("#txtSpecName").textbox("setValue", ""); //工序名
            $("#txtDetectionType").textbox("setValue", ""); //检测类型
            $("#txtEffectiveType").textbox("setValue", ""); //有效类型
            $("#txtEffectiveCount").numberbox("setValue", ""); //有效类型计数
            $("#txtSurplusQty").numberbox("setValue", ""); //剩余数量
            $("#txtDueDate").datebox("setValue", ""); //到期日期
            $("#txtNotes").textbox("setValue", ""); //描述
        }
        if (msg) {
            clearMessage();
        }
    },
    //post数据（路径，参数，是否异步，成功返回方法）
    post: function (url, param, async, callback) {
        $.ajax({
            type: "Post",
            url: url,
            data: param,
            cashe: false,
            async: async,
            dataType: "json",
            beforeSend: function () {
                $.messager.progress({ text: '', msg: '处理中...' });
            },
            success: function (data) {
                $.messager.progress('close');
                callback(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $.messager.progress('close');
                displayMessage(XMLHttpRequest.responseText, false);
                $("body").find(".easyui-linkbutton").each(function () {
                    $(this).linkbutton('enable');
                });
            }
        });
    }
}
$(document).ready(function () {
    page.init();
});